#ifndef SHOWLOADER_TEST_H
#define SHOWLOADER_TEST_H

#include <QObject>

class ShowLoader;
class MockShowGuiInterface;
class LightPresetModel;
class MediaListModel;
class SequenceModel;
class SequenceItem;
class MockScriptEngine;
class ShowFileFactory;


class ShowLoader_Test : public QObject
{
   Q_OBJECT
public:
   explicit ShowLoader_Test(QObject *parent = 0);

public slots:
   void init();
   void cleanup();

private:
   ShowLoader *m_showLoader;

   MockShowGuiInterface *m_guiInterface;
   LightPresetModel *m_lightModel;
   MediaListModel *m_mediaModel;
   SequenceModel *m_sequenceModel;
   QList<SequenceItem *> *m_sequenceItemList;
   MockScriptEngine *m_mockScriptEngine;
   ShowFileFactory *m_parserFactory;

private Q_SLOTS:
   /** correct constuction */
   void testInit();
   /** load a valid show file */
   void testLoadFile();

   /** loading an invalid file throws an exception*/
   void testLoadInvalidFile();
   /** invalid parser factory */
   void testInvalidParserFactory();
   /** invalid medis model */
   void testInvalidMediaModel();
   /** invalid light model */
   void testInvalidLightModel();
   /** invalid script engine */
   void testInvalidScriptEngine();
   /** light set has not enough values */
   void testFewLightValues();
};

#endif // SHOWLOADER_TEST_H
